//
//  main.c
//  自增自减运算符
//
//  Created by ws on 2017/7/13.
//  Copyright © 2017年 王松. All rights reserved.
//

#include <stdio.h>

/**
 自增自减运算符
 无论++在前还是在后,那么a本身都会自增1
 ++a; a本身会自增1,然后他的结果(返回值)是原来的 a+1的值
 a++; a本身会自增1,然后他的结果(返回值)是原来的 a的值
 
 无论--在前还是在后,那么a本身都会自减1
 --a; a本身会自减1,然后他的结果(返回值)是原来的 a-1的值
 a--; a本身会自减1,然后他的结果(返回值)是原来的 a的值
 */
void test1(){
    int a = 10;
    int b =  ++a;//等价于 a = a + 1
    printf("%d\n",b); //11
    int c =  a++;//也等价于 a = a + 1
    printf("%d\n",c); //11
    printf("%d\n",a); //12
}
void test2(){
    int a = 2;
    int b = a++ + a++;
    printf("%d\n",b);//5
    printf("%d\n",a); //4
    b =  ++a + a++;
    printf("a == %d, b == %d\n",a,b); //6 10
}

void test3(){
    int a = 10;
    int b =  --a;//等价于 a = a - 1
    printf("%d\n",b); //9
    int c =  a--;//也等价于 a = a - 1
    printf("%d\n",c); //9
    printf("%d\n",a); //8
}
void test4(){
    int a = 10;
    int b =  a-- + a--;
    printf("%d\n",b); // 19
    b =  --a + --a;
    printf("%d\n",b); // 13
}
int main(int argc, const char * argv[]) {
    return 0;
}

















